iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
Odoo

Odoo 16 入門介紹系列 第 11

Filter record 跟 sudo() 的用法

  • 分享至 

  • xImage
  •  

如果我們想要將特定的record找出來我們可以透過以下方法:

@api.model
def multiple_authors(self,all_book):
    def predicate(book):
        if len(book.author_ids)>1:
            return True
        return all_book.filter(predicate)
@api.model
def get_author_names(self,books):
    return book.mapped('author_ids.name')

或是排序record:

@api.mode
def sort_book_by_date(self,books):
    return books.sorted(key='release_date')

sudo()

當我們遇到需要特定全線record時,想將資料呈現給不再此群組中的使用者看,可以使用:

def book_rent(self):
    self.ensure_one() #這段在使用sudo()時,非常重要必定要搭配使用
    if self.state !='avaliable':
        raise UserError(_('book is not available for renting!!'))
        rent_as_superuser=self.env['library.book.rent'].sudo()
        rent_as_superuser.create({'book_id':self.id,
                                  'borrower_id':self.env.user.partner_id.id,})

好~ 有關model相對應用的東西就介紹到這邊,明天開始我們進入view的介紹。


上一篇
odoo 報錯種類跟方法
下一篇
odoo - View的介紹
系列文
Odoo 16 入門介紹30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言